package com.ecarx.camera.worker.car.aosp;

import android.car.VehicleAreaType;
import android.car.hardware.CarPropertyValue;
import android.util.SparseIntArray;

import com.ecarx.camera.worker.car.FunctionStatus;

/**
 * 原生Property与当前定义值的映射关系管理
 */
public class AospPropertyMapping {

    /**
     * 默认zone
     */
    public static final int DEFAULT_ZONE = VehicleAreaType.VEHICLE_AREA_TYPE_GLOBAL;

    /**
     * FunctionStatus与Aosp原生状态的对应关系
     */
    private static final SparseIntArray FUNC_STATUS_MAP;
    static {
        FUNC_STATUS_MAP = new SparseIntArray();
        FUNC_STATUS_MAP.put(CarPropertyValue.STATUS_AVAILABLE, FunctionStatus.STATUS_ACTIVE);
        FUNC_STATUS_MAP.put(CarPropertyValue.STATUS_UNAVAILABLE, FunctionStatus.STATUS_NOT_ACTIVE);
        FUNC_STATUS_MAP.put(CarPropertyValue.STATUS_ERROR, FunctionStatus.STATUS_ERR);
    }

    /**
     * 将原生CarPropertyValue中的status转化成{@link FunctionStatus}
     * @param aospValueStatus
     * @return
     */
    static int getFunctionStatus(int aospValueStatus) {
        return FUNC_STATUS_MAP.get(aospValueStatus, FunctionStatus.STATUS_ERR);
    }
}
